package br.com.rafael.gestorinvestimentos.DAO;

import java.util.Date;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;

import br.com.rafael.gestorinvestimentos.model.Lancamento;
import br.com.rafael.gestorinvestimentos.model.Operacao;

public class LancamentoDAO {
	private Session session;
	
	public LancamentoDAO(Session session){
		this.session = session;
	}	
	
	public void insert (Lancamento lancamento){
		this.session.save(lancamento);
	}
	
	public void update (Lancamento lancamento){
		this.session.merge(lancamento);
	}
	
	public void delete (Lancamento lancamento){
		this.session.delete(lancamento);
	}
	
	public Lancamento getLancamento (int id){
		return (Lancamento) session.load(Lancamento.class, id);
	
	}
	
	public Lancamento getLancamento (Date data){
		Query q = this.session.createQuery("from Lancamento as operacao where lancamento.data = :lancamentoData").setParameter("lancamentoData", data);
		return (Lancamento) q.uniqueResult();
	}
	
	public List getList (){
		return this.session.createCriteria(Lancamento.class).list();
	}
}
